package com.zekdot.registerclient.service;

import com.zekdot.registerclient.dto.Envelope;
import com.zekdot.registerclient.entity.EnrollMetaEntity;

import java.util.Date;

/**
 * Create by zekdot on 20-3-21.
 */
public interface EnrollMetaService {
    /**
     * 新建一个报名
     * @param enrollMetaEntity 报名实体
     * @param username 用户名
     * @return
     */
    Envelope newEnroll(EnrollMetaEntity enrollMetaEntity, String username);

    /**
     * 获取报名信息
     * @param id 报名id
     * @return 包含报名信息的信封
     */
    Envelope getEnrollInfo(String id);

    /**
     * 更新报名状态
     * @param id 报名id
     * @param username 用户名
     * @param status 状态
     * @return
     */
    Envelope updateEnrollStatus(String id,String username,int status);

    /**
     * 获得用户发起报名更多实体
     * @param userId 用户id
     * @param lastTime 最后一条报名的时间
     * @param length 长度
     * @return
     */
    Envelope getMoreEnrollMeta(String userId, Date lastTime,int length);

    /**
     * 获取报名元数据
     * @param eId 报名元数据id
     * @param token 令牌
     * @param username 用户名
     * @return
     */
    Envelope getEnrollMeta(String eId,String token,String username);

    /**
     * 获取报名元数据中的描述部分
     * @param eId 报名元数据id
     * @param token 令牌
     * @param username 用户名
     * @return
     */
    Envelope getMetaDesc(String eId,String token,String username);

    /**
     * 获取临时操作token
     * @param eId 报名id
     * @return
     */
    Envelope getTempToken(String eId);

    /**
     * 获取报名重用信息
     * @param eId 报名id
     * @return
     */
    Envelope getReuseEnrollData(String eId);
    /**
     * 获取报名元数据的状态提示
     * @param eId 报名元数据id
     * @param token 令牌
     * @param username 用户名
     * @return

    Envelope enrollMetaStatusTips(String eId,String token,String username);
     */
}
